home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / DevCon / Atlanta_1990 / Atlanta-Devcon.1 / Libraries / Commodities / Blanker / app.c next >
Encoding:
C/C++ Source or Header  |  1992-08-26  |  4.3 KB  |  177 lines

  1.  
  2.    /***********************************************************************
  3.    *                                                                      *
  4.    *                            COPYRIGHTS                                *
  5.    *                                                                      *
  6.    *   Copyright (c) 1990  Commodore-Amiga, Inc.  All Rights Reserved.    *
  7.    *                                                                      *
  8.    ***********************************************************************/
  9.  
  10. /* custom.c This file contains the custom code for a commodity */
  11. /* you should be able to write a new commodity by changing only */
  12. /* custom.c and custom.h */
  13.  
  14. #include "app.h"
  15.  
  16. #if WINDOW
  17.  
  18. #define V(x) ((VOID *)x)
  19.  
  20. struct TextAttr mydesiredfont =
  21.    {
  22.       "topaz.font",  /*  Name */
  23.       8,             /*  YSize */
  24.       0,             /*  Style */
  25.       0,             /*  Flags */
  26.    };
  27.  
  28. VOID setupCustomGadgets(gad)
  29. struct Gadget **gad;
  30. {
  31. /*
  32.    struct NewGadget ng;
  33.  
  34.    ng.ng_TopEdge    = topborder+0;
  35.    ng.ng_LeftEdge   = 10;
  36.    ng.ng_Width      = 40;
  37.    ng.ng_Height     = 12;
  38.    ng.ng_GadgetText = "Hide";
  39.    ng.ng_TextAttr   = &mydesiredfont;
  40.    ng.ng_GadgetID   = GAD_HIDE;
  41.    ng.ng_Flags      = NULL;
  42.    ng.ng_VisualInfo = vi;
  43.    *gad = CreateGadget(BUTTON_KIND,*gad, &ng,TAG_DONE);
  44.  
  45.    ng.ng_TopEdge    = topborder+15;
  46.    ng.ng_LeftEdge   = 10;
  47.    ng.ng_Width      = 40;
  48.    ng.ng_Height     = 12;
  49.    ng.ng_GadgetText = "Die";
  50.    ng.ng_TextAttr   = &mydesiredfont;
  51.    ng.ng_GadgetID   = GAD_DIE;
  52.    ng.ng_Flags      = NULL;
  53.    ng.ng_VisualInfo = vi;
  54.    *gad = CreateGadget(BUTTON_KIND,*gad, &ng,TAG_DONE);
  55. */
  56.    mysetupCustomGadgets(gad);
  57. }
  58. VOID HandleGadget(gad,code)
  59. ULONG gad,code;
  60. {
  61. /*
  62.    D( kprintf("custom: HandleGadget(%lx)\n",gad); )
  63.    switch(gad)
  64.    {
  65.       case GAD_HIDE:
  66.             D( kprintf("custom: HandleGadget() GAD_HIDE\n"); )
  67.             shutdownWindow();
  68.             break;
  69.       case GAD_DIE:
  70.             D( kprintf("custom: HandleGadget() GAD_DIE\n"); )
  71.             terminate();
  72.    }
  73. */
  74.    myHandleGadget(gad,code);
  75. }
  76. VOID setupCustomMenu()
  77. {
  78.    struct NewMenu mynewmenu [] =
  79.       {
  80.          {  NM_TITLE,   "Project",  0,    0, 0, 0,             },
  81.          {   NM_ITEM,   "Hide",     "H",  0, 0, V(MENU_HIDE),   },
  82.          {   NM_ITEM,   "Quit",      "Q",  0, 0, V(MENU_DIE),    },
  83.          {  NM_END,     0,          0,    0, 0, 0              },
  84.       };
  85.  
  86.    menu=CreateMenus(mynewmenu,TAG_DONE);
  87.    D( kprintf("custom: CreateMenus returns menu =  %lx\n",menu); )
  88. }
  89. VOID handleCustomMenu(code)
  90. UWORD code;
  91. {
  92.    struct MenuItem *item;
  93.    BOOL terminated=FALSE;
  94.  
  95.    D( kprintf("custom: handleCustomMenu(code=%lx)\n",code); )
  96.    while((code!=MENUNULL)&&(!terminated))
  97.    {
  98.       item=ItemAddress(menu,code);
  99.       switch((int)MENU_USERDATA(item))
  100.       {
  101.          case MENU_HIDE:
  102.                shutdownWindow();
  103.                terminated=TRUE; /* since window is gone NextSelect is invalid so...*/
  104.                break;
  105.          case MENU_DIE:
  106.                terminate();
  107.                break;
  108.          default:
  109.                break;
  110.       }
  111.       code=item->NextSelect;
  112.       D( kprintf("custom: handleCustomMenu next code=%lx\n",code); )
  113.    }
  114.    D( kprintf("custom: handleCustomMenu exits"); )
  115. }
  116. VOID refreshWindow()
  117. {
  118.    if(window)
  119.    {
  120.       if(IDCMPRefresh)
  121.          GT_BeginRefresh( window );
  122. /*
  123.       SetAPen(window->RPort,1);
  124.       SetBPen(window->RPort,2);
  125.       SetDrMd(window->RPort,JAM2);
  126.       SetFont(window->RPort,font);
  127.       Move(window->RPort,50,topborder+40);
  128.       Text(window->RPort,"Your Imagery Here",17);
  129. */
  130.       if(IDCMPRefresh)
  131.          GT_EndRefresh( window, 1L );
  132.  
  133.       /* It is possible that the user has selected a font so large */
  134.       /* that our imagery will fall off the bottom of the window   */
  135.       /* we RefreshWindowFrame here incase our borders were overwritten */
  136.       if((topborder+WINDOW_INNERHEIGHT) > window->Height)
  137.          RefreshWindowFrame(window);
  138.    }
  139.    return;
  140. }
  141.  
  142. #endif /* WINDOW */
  143.  
  144. BOOL setupCustomCX()
  145. {
  146.    return(setupBlanker());
  147. }
  148. VOID shutdownCustomCX()
  149. {
  150. }
  151. VOID handleCustomCXMsg(id)
  152. ULONG id;
  153. {
  154.    switch(id)
  155.    {
  156.       case 0:
  157.       default:
  158.             break;
  159.    }
  160. }
  161. VOID handleCustomCXCommand(id)
  162. ULONG id;
  163. {
  164.    switch(id)
  165.    {
  166.       case 0:
  167.       default:
  168.             break;
  169.    }
  170. }
  171. #if CSIGNAL
  172. VOID handleCustomSignal(VOID)
  173. {
  174.    MyHandleCustomSignal();
  175. }
  176. #endif
  177.